如何使Kibana中TimeStamp和日志时间一致 |
您所在的位置:网站首页 › kibana查询日志 add filter › 如何使Kibana中TimeStamp和日志时间一致 |
开篇 接上篇文章:运维神器 -- ELK ,介绍了何为ELK,如何部署生产级别的监控系统 -- ELK。本篇介绍在使用ELK中,如何使Kibana中TimeStamp和日志时间一致性问题。 ![]() ![]() 如图,我们在使用中会碰到,Kibana的时间「@timestamp」和业务系统中输出的时间不一致。这样带来的问题就是日志混乱、并且不能按照日志时间来排序。为什么?因为Kibana是按照「@timestamp」排序的,而@timestamp是按照logstash插入es数据的时间来排序,而且数据是按照批次来的,每一批次的时间可能都是大径相同,这样子的结果就是导致上诉描述的一系列问题。 解决方法![]() 那如何解决上诉问题呢?请看下面👇👇👇 filter { ###替换@timestamp时间为日志真实时间###### grok { match => { "message" => "(?%{TIMESTAMP_ISO8601})" } } date { match => [ "timestamp", "ISO8601" ] } mutate { remove_field => [ "timestamp" ] } }只需要在logstash中增加一个filter,提取日志中的时间,并替换@timestamp,重启logstash就可以轻松解决。如果不需要timestamp field,可以remove。 ![]() Date常见的配置如下: date { match => [ "time_field", "yyyyMMdd HH:mm:ss.SSS" ] # timezone => "UTC" target => "end_time" }上述配置的含义是,将time_field字段按照yyyyMMdd HH:mm:ss.SSS格式解析后存到target指定的字段end_time字段去。time_field必须是已经定义的字段,最常见的就是在grok里面解析出来的某个时间字段。时间格式可查看Date插件的文档。如果没有指定target,默认就是@timestamp字段,这就是为什么我们可以使用该插件来修改@timestamp字段值的原因。 结语OK,ELK拓展文章就先结束一篇。未完待续,欢迎各位看客老爷关注收藏······· |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |